The present disclosure relates generally to information handling systems, and more particularly to optimal file system performance.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option is an information handling system (IHS). An IHS generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes. Because technology and information handling needs and requirements may vary between different applications, IHSs may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in IHSs allow for IHSs to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, IHSs may include a variety of hardware and software components (e.g. an operating system) that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
A file system is a system, including hardware and software, for storing and organizing computer data files to allow easy access to the files. There are currently many file systems available for operating systems such as Linux and UNIX. Having multiple file systems to choose from can be confusing for most users. Therefore, many users end up using a default system or the most basic file systems available (like ext2 or ext3). However, the basic or default file systems may not be the most optimized file system for their applications and workloads. In addition, the basic or default system may not match the features that users are expecting to get from their file systems.
In light of the many file systems available, questions such as which file systems provide the best disk performance and minimize the processor time for a given situation are not easy to answer. To make matters more complicated, system performance can be optimized not only by selecting the most appropriate file system, but also by utilizing the various parameters that are available within the file system. For large-scale and high performance systems, choosing an optimal file system is not an easy choice, but it is a crucial decision. This is because the chosen file system has a noticeable effect on performance, on recovery from errors, on compatibility with other operating systems, and on limitations on partition and file sizes.
There are a variety of ways one can try to determine which file system may be optimal for a given situation. A few examples of file system characteristics are provided below:                (1) Recovery Time after System Crash: One generalization that can be made with regard to high performance computing systems is that it is usually advantageous to use a journaling file systems because of the greatly reduced startup times after system crashes. The popular journaling file systems used in the industry are ext3, XFS, JFS and ReiserFS.        (2) File Access Patterns: Some studies suggest that XFS and JFS produce the best throughput with small files (e.g., 100 MB), while ext2, ext3 are the best with larger files (e.g., 1 GB).        (3) Disk Size Limitations: The choice of journaling file systems can affect disk space availability because of the amount of space needed for the journal. This is a major consideration on small disks, such as Zip disks. For example, on a 100 MB Zip disk, ext3fs and XFS each devote 4 MB to their journals whereas ReiserFS devotes several times this amount to its journal. Space used for inodes is another variable, most of the file systems allocate inodes statically, whereas JFS allocates inodes dynamically, and frees them when they are no longer needed. As a result, the users do not have to estimate the maximum number of files and directories that a file systems will contain.        (4) File systems Limits: Different file systems support various file sizes and volume sizes. Certain users choose their file systems based on the supported file and volume sizes.        (5) Fault Tolerance: Journaling, locking schemes, data integrity check are some of the features that file systems handle differently, Ext2 for example lacks a journal, causing a full file systems check after a crash in order to make sure the file systems is consistent.        (6) Performance: Different file systems have different performance characteristics. In redundant array of independent drives (RAID) arrays, for example, experiments show that xfs performs better than ext3 for sequential read and write operations. Also, depending on the file access patterns, as described above, different file systems may have different performance characteristics.        
As one can see from the list above, there are a number of ways to choose an appropriate file system. To make matters worse, there is a very large pool of available file systems that may be used to satisfy the user's needs. A combination of these two factors make choosing a file system a daunting task, and typically results in the user ending up using default file systems on their computer platform.
Another reason why one does not see many of these file systems being used is due to the computing model used on large, high-performance computing systems with large numbers of users, where a system administrator is responsible for creating file systems and its related activities. The user typically does not have permissions to choose, change or create file systems and therefore is limited to what the system administrator assigns to them. Most system administrators use a journaling file system for the user home directory and a high-performance file system to address the user's need for fast disk access. However, this limits the user to just these two file systems, and does not address the user's specific application needs and does not make efficient use of available disk space. This also leads to inefficiencies or unnecessary redundancy. For example, a journal is not required for a temporary file which is created during an intermediate stage of an application.
Accordingly, it would be desirable to provide for optimal file system performance.